package com.pss.common.result;

/**
 * 错误码
 *
 * @Date: 2019/5/14 21:46
 */
public enum ErrorCode {

    /**
     * 成功
     */
    SUCCESS(200, "成功"),
    /**
     * 失败
     */
    FAIL(201, "失败"),


    // 系统级

    /**
     * 缺少必要参数，或者参数值格式不正确，具体错误信息请查看错误描述 message 字段。
     */
    FAIL_400(400, "请求参数非法"),

    FAIL_401(401, "请求未授权"),

    /**
     * 服务器内部出现错误，请稍后重试或者联系客服人员帮忙解决。
     */
    FAIL_500(500, "服务器开小差了，休息一下再试吧~"),

    // 定义业务操作中的错误,1 开头
    FAIL_1001(1001, "用户未登录"),

    FAIL_1002(1002, "验证码错误"),

    FAIL_1003(1003, "用户名或密码错误"),


    /**
     * 自定义错误类型
     */
    FAIL_99999(99999, "");

    private int code;
    private String msg;

    /**
     * 是否成功
     *
     * @return
     */
    public boolean isSuccess() {
        return SUCCESS.code == code;
    }

    /**
     * Constructor
     *
     * @param code
     * @param msg
     */
    ErrorCode(int code, String msg) {
        this.setCode(code);
        this.setMsg(msg);
    }

    /**
     * @return the code
     */
    public int getCode() {
        return code;
    }

    /**
     * @param code the code to set
     */
    public void setCode(int code) {
        this.code = code;
    }

    /**
     * @return the msg
     */
    public String getMsg() {
        return msg;
    }

    /**
     * @param msg the msg to set
     */
    public void setMsg(String msg) {
        this.msg = msg;
    }


    public static String getMsg(int code){
        for(ErrorCode errorCode : ErrorCode.values()){
            int thisCode = errorCode.getCode();
            if (thisCode == code){
                return errorCode.getMsg();
            }
        }
        return null;
    }
    @Override
    public String toString() {
        return "[" + this.code + "]" + this.msg;
    }

}

